Add constraint solver
authorEmmanuele Bassi <ebassi@gnome.org>
Tue, 9 Apr 2019 13:05:48 +0000 (14:05 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Sun, 30 Jun 2019 22:42:44 +0000 (23:42 +0100)
commit6b308cd71e1c6d37cd32a3b99d21e729e181aa8d
treea741e62656b9685662b1775a3d30bfca55ebf54e
parent3b6ee32f83882c8c2c736c7bb504a47bf1fdf407
Add constraint solver

GtkConstraintSolver is an implementation of the Cassowary constraint
solving algorithm:

  http://constraints.cs.washington.edu/cassowary/

The Cassowary method allows to incrementally solve a tableau of linear
equations, in the form of:

  x = y × coefficient + constant

with different weights, or strengths, applied to each one.

These equations can be used to describe constraints applied to a layout
of UI elements, which allows layout managers using the Cassowary method
to quickly, and efficiently, lay out widgets in complex relations
between themselves and their parent container.
gtk/gtkconstraintexpression.c [new file with mode: 0644]
gtk/gtkconstraintexpressionprivate.h [new file with mode: 0644]
gtk/gtkconstraintsolver.c [new file with mode: 0644]
gtk/gtkconstraintsolverprivate.h [new file with mode: 0644]
gtk/gtkconstrainttypesprivate.h [new file with mode: 0644]
gtk/gtkenums.h
gtk/meson.build
testsuite/gtk/constraint-solver.c [new file with mode: 0644]
testsuite/gtk/meson.build